﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MySql.Data.MySqlClient;

namespace Example
{
    /// <summary>
    /// Clase que se encarga de intermediar entre la fachada Bdd y la vista (realiza la lógica de negociov)
    /// </summary>
    class Login
    {
        /// <summary>
        /// Nombre usuario de la Bdd
        /// </summary>
        private String nombre;

        /// <summary>
        /// Password usuario de la Bdd
        /// </summary>
        private String password;

        /// <summary>
        /// IpAdress de la Bdd
        /// </summary>
        private String ip;

        /// <summary>
        /// Id del usuario obtenido de la Bdd (Tras el login)
        /// </summary>
        private int id;

        /// <summary>
        /// LoginDAO que se comunica con la fachada
        /// </summary>
        private LoginDAO loginDAO;

        /// <summary>
        /// Constructor vacio del Login
        /// </summary>
        public Login()
        {
        }

        /// <summary>
        /// Constructor con parametros del Login
        /// </summary>
        /// <param name="password">Password de la Bdd</param>
        /// <param name="nombre">Nombre del usuario de la Bdd</param>
        /// <param name="ip">Ip donde se encuentra la Bdd</param>
        public Login(String nombre, String password, String ip)
        {
            this.nombre = nombre;
            this.password = password;
            this.ip = ip;

            loginDAO = new LoginDAO();
        }


        public String getNombre()
        {
            return this.nombre;
        }

        public String getPassword()
        {
            return this.password;
        }

        public void setNombre(String newNombre)
        {
            this.nombre = newNombre;
        }

        public void setPassword(String newPassword)
        {
            this.password = newPassword;
        }

        public int getId()
        {
            return this.id;
        }

        public void setId(int id)
        {
            this.id = id;
        }

        /// <summary>
        /// Método que se encarga de realizar el Login, comprueba campos y si lo que devuelve es un valor válido
        /// </summary>
        public Boolean hacerLogin()
        {
            int idAux = loginDAO.hacerLogin(this.nombre, this.password);
            if (idAux != -1)
            {
                this.id = idAux;
                if (ip != null)
                {
                    return true;
                }
                else
                {
                    return false;
                }
               
            }
            else
            {
                return false;
            }
        }
        

    }
}
